package com.example.rpc_core.serializable;

import com.example.rpc_core.spi.SpiLoader;

public class SerializableFactory {
    /**
     * 将序列化器注册
     */
//    public static Map<String, Serializable> serializableMap = new HashMap<>();
//    static {
//       serializableMap.put(SerializableConstant.JDK,new JdkSerializable());
//       serializableMap.put(SerializableConstant.KRYO,new KryoSerializable());
//       serializableMap.put(SerializableConstant.HESSIAN,new HessianSerializable());
//       serializableMap.put(SerializableConstant.JACKSON,new JacksonJsonSerializable());
//    }

    static {
        SpiLoader.load(Serializable.class);
    }



//    /**
//     * 默认序列化器
//     */
//    public static final Serializable DeFaultSerializable = serializableMap.get(SerializableConstant.JDK);
    /**
     * 获取对应的序列化器
     */
//    public static final Serializable getSerializable(String name){
//        return serializableMap.getOrDefault(name,DeFaultSerializable);
//    }
    public static final Serializable getSerializable(String name){
        return SpiLoader.getInstance(Serializable.class,name);
    }
}
